
package com.insigma.business.qrcode.soldier.dao;


import com.insigma.business.qrcode.soldier.dto.CompanyBSearcher;
import com.insigma.business.qrcode.soldier.entity.CompanyDO;
import com.insigma.business.qrcode.soldier.entity.CompanyPositNoFairIdDO;
import com.insigma.business.qrcode.soldier.entity.DataStatsCDO;
import com.insigma.business.qrcode.soldier.entity.KeyValueCDO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;


public interface CompanyDao {

    
    List<CompanyDO> search(final CompanyBSearcher innerSearcher);

    List<CompanyPositNoFairIdDO> getCompanyPositNoFairId();
    
    CompanyDO get(final String id);

    
    Integer insert(final CompanyDO companyDO);

    
    Integer update(final CompanyDO companyDO);

    
    Integer delete(@Param("id") final String id,
                   @Param("modifierType") final String modifierType,
                   @Param("modifierId") final String modifierId);

    
    CompanyDO getByUserId(final String userId);

    
    List<CompanyDO> searchByQualification(CompanyBSearcher companyBSearcher);

    
    List<KeyValueCDO> listId2ValueByIdList(@Param("idList") final List<String> idList);

    Integer count();

    List<DataStatsCDO> groupCompanyType();

    Integer countByBetweenTime(@Param("startTime")Date startTime, @Param("endTime")Date endTime);

    CompanyDO getByCompanyName(String name);
}
